package dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import model.Grupo;

public class GrupoDAO {
	private Connection conexao;
	private Statement st;
	private ResultSet rs;
	Adaptador adaptador = new Adaptador();
	
	public void inserir(Grupo grupo,String nomePsicologo,String nomeEmpresa) throws SQLException{
		conexao = adaptador.abrirConexao();
		String sql = "SELECT inserirgrupo('"+nomePsicologo+"','"+nomeEmpresa+"','"+grupo.getFuncaoDosRespondentes()+
		"','"+grupo.getDataInicio()+"','"+grupo.getDataTermino()+"',"+grupo.getFrequenciaResposta()+");";
		try{
			st = conexao.createStatement();
			rs = st.executeQuery(sql);
		}
		catch(SQLException sqle){
			sqle.getMessage();
		}finally{
			conexao.close();
			st.close();
			rs.close();
		}
	}
	
	public boolean deletar(String funcao)throws SQLException{
		conexao = adaptador.abrirConexao();
		String sql = "DELETE * FROM Grupo WHERE matricula='"+funcao+"'";
		try{
			st = conexao.createStatement();
			rs = st.executeQuery(sql);
			return true;
		}catch(SQLException sqle){
			sqle.getMessage();
			return false;
		}finally{
			conexao.close();
			st.close();
			rs.close();
		}
	}
	
	public ArrayList<Grupo> listar() throws SQLException{
		ArrayList<Grupo> grupos = new ArrayList<Grupo>();
		conexao = adaptador.abrirConexao();
		String sql = "SELECT * FROM Grupo";
		try{
			st = conexao.createStatement();
			rs = st.executeQuery(sql);
			while(rs.next()){
				String funcaoDosRespondentes = rs.getString("funcao");
				String dataInicio = rs.getString("data_inicio");
				String dataTermino = rs.getString("data_termino");
				int codigo = Integer.parseInt(rs.getString("codigo"));
				int frequenciaResposta = Integer.parseInt(rs.getString("frequencia_resposta"));
				Grupo now = new Grupo(funcaoDosRespondentes, dataInicio, dataTermino, frequenciaResposta);
				now.setCodigo(codigo);
				grupos.add(now);
			}
			
		}catch(SQLException sqle){
			sqle.getMessage();
		}finally{
			conexao.close();
			st.close();
			rs.close();
		}
		return grupos;
	}
}
